package com.tencent.wxpay.protocol.model;

import java.io.Serializable;
import java.util.List;

/**
 * 退款
 */
public class Refund implements Serializable {
    private static final long serialVersionUID = -7042455351883871684L;
    /**
     * 代金券类型
     * 必填：否
     * 描述：CASH--充值代金券
     * NO_CASH---非充值代金券
     * 订单使用代金券时有返回（取值：CASH、NO_CASH）
     */
    private String coupon_type;
    /**
     * 代金券退款金额
     * 必填：否
     * 描述：代金券退款金额<=退款金额，退款金额-代金券或立减优惠退款金额为现金，说明详见<a href="https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=12_1">代金券或立减优惠</a>
     */
    private Integer coupon_refund_fee;
    /**
     * 退款代金券使用数量
     * 必填：否
     * 描述：退款代金券使用数量 ,$n为下标,从0开始编号
     */
    private Integer coupon_refund_count;
    /**
     * 退款代金券列表
     * 必填：否
     * 描述：退款代金券列表
     */
    private List<CouponRefund> couponRefunds;

    public Refund() {
    }

    public Refund(String coupon_type, Integer coupon_refund_fee, Integer coupon_refund_count) {
        this.coupon_type = coupon_type;
        this.coupon_refund_fee = coupon_refund_fee;
        this.coupon_refund_count = coupon_refund_count;
    }

    public Refund(String coupon_type, Integer coupon_refund_fee, Integer coupon_refund_count, List<CouponRefund> couponRefunds) {
        this.coupon_type = coupon_type;
        this.coupon_refund_fee = coupon_refund_fee;
        this.coupon_refund_count = coupon_refund_count;
        this.couponRefunds = couponRefunds;
    }

    public String getCoupon_type() {
        return coupon_type;
    }

    public void setCoupon_type(String coupon_type) {
        this.coupon_type = coupon_type;
    }

    public Integer getCoupon_refund_fee() {
        return coupon_refund_fee;
    }

    public void setCoupon_refund_fee(Integer coupon_refund_fee) {
        this.coupon_refund_fee = coupon_refund_fee;
    }

    public Integer getCoupon_refund_count() {
        return coupon_refund_count;
    }

    public void setCoupon_refund_count(Integer coupon_refund_count) {
        this.coupon_refund_count = coupon_refund_count;
    }

    public List<CouponRefund> getCouponRefunds() {
        return couponRefunds;
    }

    public void setCouponRefunds(List<CouponRefund> couponRefunds) {
        this.couponRefunds = couponRefunds;
    }
}
